$(function () {
    var accountId = getCommbotreeValue("accountId");
    //没有选择 就查询所有的下拉框的
    if (isNull(accountId)) {
        accountId = getCommbotreeAllValue("accountId");
    }
    $('#dg').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: etfmanage + '/account/listInfo',
        pagination: true,
        singleSelect: true,//如果为true，则只允许选择一行。
        title: "ETF台账列表信息",
        pageSize: pageSize,
        pageList: pageList,
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        queryParams: {
            startDate: $("#startDate").combobox("getValue"),
            accountId: accountId
        },
        frozenColumns: [[ //禁止滑动的列
            {field: 'securityCode', title: '证券代码'},
            {field: 'securityName', title: '证券名称'},
            {field: "shareholderCode", title: "股东账户"}
        ]],
        columns: [
            [{"title": "申购/赎回数据", "colspan": 6}, {"title": "剩余数据", "colspan": 3}, {"title": "其它数据", "colspan": 9}],
            [
                //申购/赎回数据
                {field: 'fdate', title: '日期'},
                {
                    field: "businessType", title: "买卖方向", formatter: function (value, row, index) {
                        if ("SG" == value) {
                            return "申购";
                        } else if ("SH" == value) {
                            return "赎回";
                        } else if ("B" == value) {
                            return "待买";
                        } else if ("S" == value) {
                            return "待卖";
                        } else if ("M" == value) {
                            return "必须";
                        }
                    }
                },
                {
                    field: 'amount', title: '数量', formatter: function (value, row, index) {
                        return getNumber(value)
                    }
                },
                {
                    field: 'unitCost', title: '单位成本', formatter: function (value, row, index) {
                        return getNumber(value)
                    }
                },
                {
                    field: 'replaceMoney', title: '替代金额', formatter: function (value, row, index) {
                        return getNumber(value)
                    }
                },
                {
                    field: 'replaceableMoney', title: '可退替代款', formatter: function (value, row, index) {
                        return getNumber(value)
                    }
                },
                //剩余数据
                {
                    field: 'surplusAmount', title: '数量', formatter: function (value, row, index) {
                        return getNumber(value)
                    }
                },
                {
                    field: 'surplusReplaceMoney', title: '替代金额', formatter: function (value, row, index) {
                        return getNumber(value)
                    }
                },
                {
                    field: 'totalPayableReplaceMoney', title: '应退合计', formatter: function (value, row, index) {
                        return getNumber(value)
                    }
                },
                //其它数据
                {field: 'refundDate', title: '退款日期'},
                {field: 'transactionNumber', title: '成交编号'},
                {
                    field: 'clearCode', title: '清算是否完成', formatter: function (value, row, index) {
                        if ("Y" == value) {
                            return "已完成";
                        } else if ("N" == value) {
                            return "未完成";
                        }
                    }
                },
                {
                    field: 'replaceableValuationMoney', title: '可退替代款估值增值', formatter: function (value, row, index) {
                        return getNumber(value)
                    }
                },
                {field: 'dealSeat', title: '交易席位'},
                {field: 'rate', title: '汇率'},
                {field: 'settlementCode', title: '结算编号'}
            ]],
        loadFilter: function (data) {
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            $('#dlg').dialog({title: "补票信息",}).dialog('open');
            getDataGridBp(rowData); //加载补票数据
        }
    }).datagrid("columnMoving");
    initData();
})

// 初始化加载下拉框的值
function initData() {
    $.ajax({
            type: "post",
            url: etfmanage + "/account/init",
            dataType: "json",
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                var lsetlists = data.data.lsetlists;
                var etfMode = data.data.etfMode;
                var etfType = data.data.etfType;
                var etfMarket = data.data.etfMarket;
                if (!isNull(lsetlists)) {
                    $("#accountId").combotree("loadData", lsetlists);
                }
                if (!isNull(etfMode)) {
                    etfMode.unshift({"showmsg": "==全部==", "value": ''});
                    $("#etfMode").combobox("loadData", etfMode);
                }
                if (!isNull(etfType)) {
                    etfType.unshift({"showmsg": "==全部==", "value": ''});
                    $("#etfType").combobox("loadData", etfType);
                }
                if (!isNull(etfMarket)) {
                    etfMarket.unshift({"showmsg": "==全部==", "value": ''});
                    $("#market").combobox("loadData", etfMarket);
                }

                $('#etfType').combobox({
                    onChange: function (n, o) {
                        typeSelect(n);
                    }
                });
                typeSelect(null);
                $('#etfType').combobox('setValue', "");
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

/**
 * 申赎方向
 * @param obj
 */
function typeSelect(obj) {
    var data = [{label: '', value: '==全部=='}, {label: 'SG', value: '申购'}, {label: 'SH', value: '赎回'}];
    if ("3" == obj) {
        data = [{label: '', value: '==全部=='}, {label: 'B', value: '待买'}, {label: 'S', value: '待卖'}, {
            label: 'M',
            value: '必须'
        }];
    }
    if(isNull(obj)){
        $('#businessType').combobox({
            valueField: 'label', textField: 'value',
            data: data,
            onSelect: function () {
                $(this).combobox('clear');
            }
        });
    }
}

//搜索的方法
function doSearch() {
    var queryParams = $("#dg").datagrid("options").queryParams;
    var accountId = getCommbotreeValue("accountId");
    if (isNull(accountId)) { //没有选择基金 就查询所有的下拉框的
        queryParams["accountId"] = getCommbotreeAllValue("accountId");
    } else {
        queryParams["accountId"] = accountId;
    }
    queryParams["startDate"] = $("#startDate").combobox("getValue");
    queryParams["endDate"] = $("#endDate").combobox("getValue");
    queryParams["securityCode"] =$("#securityCode").val();
    queryParams["strEtfType"] = getCommboxValue("etfType");
    queryParams["businessType"] = getCommboxValue("businessType");
    queryParams["clearCode"] = getCommboxValue("clearCode");
    queryParams["strEtfMode"] = getCommboxValue("etfMode");
    queryParams["market"] = getCommboxValue("market");
    queryParams["detailSum"] = getCommboxValue("detailSum");
    $("#dg").datagrid("options").queryParams = queryParams;
    $("#dg").datagrid("load");
}

/**
 * 加载补票的数据
 * @param data
 */
function getDataGridBp(data) {
    $("#dgbp").datagrid({
        loadMsg: '数据加载中，请稍后...',
        singleSelect: false,//如果为true，则只允许选择一行。
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,
        frozenColumns: [[
            {field: "id", title: "编号", hidden: true},]],
        columns: [[
            {field: 'fdate', title: '补票日期'},
            {
                field: 'amount', title: '数量', formatter: function (value, row, index) {
                    return getNumber(value)
                }
            },
            {
                field: 'unitCost', title: '单位成本', formatter: function (value, row, index) {
                    return getNumber(value)
                }
            },
            {
                field: 'replaceMoney', title: '替代金额', formatter: function (value, row, index) {
                    return getNumber(value)
                }
            },
            {
                field: 'cost', title: '补券成本', formatter: function (value, row, index) {
                    return getNumber(value)
                }
            },
            {
                field: 'payableReplaceMoney', title: '应付替代款', formatter: function (value, row, index) {
                    return getNumber(value)
                }
            },
            {
                field: 'replaceableMoney', title: '可退替代款', formatter: function (value, row, index) {
                    return getNumber(value)
                }
            },
            {
                field: 'type', title: '补票类型', formatter: function (value, row, index) {
                    if ("0" == value) {
                        return "轧差";
                    } else if ("1" == value) {
                        return "普通";
                    } else if ("2" == value) {
                        return "强制";
                    }
                }
            }
        ]]
    }).datagrid("columnMoving");
    $("#dgbp").datagrid("loadData", data.listAccountFill);  //动态取数据
}


//更新台账
function renewAccount() {
    $.messager.progress({text: '正在处理中...',});
    $.ajax({
            type: "post",
            url: etfmanage + "/account/renewAccount",
            data: {
                startDate: $("#startDate").combobox("getValue"),
                endDate: $("#endDate").combobox("getValue"),
                accountId: getCommbotreeValue("accountId")
            },
            dataType: "json",
            success: function (data) {
                $.messager.progress('close');
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                doSearch();
                $.messager.show({title: '系统提示', msg: data.message});
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

//导出台账
function exprotFile() {
    var options = $("#dg").datagrid("getPager").data("pagination").options;
    var totalCount = options.total;
    var confirMsg = '共有' + totalCount + '条数据，导出可能较慢，请耐心等候';
    if (totalCount * 1 >= 10000) {
        confirMsg = '共有' + totalCount + '条数据，导出可能较慢，建议必要筛选后再导出。是否继续导出？';
    }
    $.messager.confirm('系统提示', confirMsg, function (r) {
        if (r) {
            $('#tabfrom').form('submit', {
                url: "/account/export",
                onSubmit: function (queryParams) {
                    //验证表单信息
                    queryParams.startDate = $("#startDate").combobox("getValue");
                    queryParams.endDate = $("#endDate").combobox("getValue");
                    queryParams.detailSum = $("#detailSum").combobox("getValue");
                    queryParams.businessType = $("#businessType").combobox("getValue");
                    queryParams.clearCode = $("#clearCode").combobox("getValue");
                    queryParams.securityCode = $("#securityCode").val();
                }, success: function (data) {
                    data = JSON.parse(data);
                    if (data && successcode == data.code) {
                        $.messager.show({title: '系统提示', msg: data.message});
                    } else {
                        return error(data);
                    }
                }, error: function (data) {
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            });
        }
    });
}
